#ifndef CUDA_RESULT_ANALYSIS_H
#define CUDA_RESULT_ANALYSIS_H

/**
    对raytracing算法计算得到的结果进行处理，找出：max_value、sum_energy、max_location
    其实就是替代了ImageSaver::saveText中的找最大值、最大值位置、总能量的部分
    运行速度要快很多-----并不能替代存入.txt文件的部分
*/

#include <cuda_runtime.h>

namespace solar::cuda
{
    class CudaResultAnalysis
    {
        public:
            CudaResultAnalysis(int receiver_type, float pixel, int2 resolution)
                : receiver_type_(receiver_type), pixel_(pixel), resolution_(resolution)
            {
            }

            void analyzeResultData(float* d_data, float& max_flux, float& sum_energy,
                                   int2& max_location) const;

        private:
            int receiver_type_; // 接收器类型
            float pixel_;       // 接收器像素大小
            int2 resolution_;   // 图片分辨率大小，x--width， y--height
    };
} // namespace solar::cuda

#endif
